import axios from 'axios'
import { Toast } from 'vant'
import { get, cle } from '../utils/index'

const instance = axios.create({
  baseURL: import.meta.env.VITE_API_URL,
  timeout: 3000,
  // baseURL: '/api',
})

// 添加请求拦截器
instance.interceptors.request.use(
  function (config) {
    // 在发送请求之前做些什么
    Toast.loading({
      message: '加载中...',
      forbidClick: true,
      loadingType: 'spinner',
      duration: 0,
    })
    let token = get('token')
    if (token) {
      config.headers['Authorization'] = `Bearer ${token}`
    }

    return config
  },
  function (error) {
    // 对请求错误做些什么
    return Promise.reject(error)
  }
)

// 添加响应拦截器
instance.interceptors.response.use(
  function (response) {
    // 对响应数据做点什么
    Toast.clear()
    console.log(response.data?.code)
    if (response.data?.code === 50012) {
      cle()
      Toast('账号已在其他地方登录,或者已过期!')
      location.reload()
    }
    return response.data
  },
  function (error) {
    Toast.clear()
    // 对响应错误做点什么
    // console.log(error.message)
    return Promise.reject(error)
  }
)

export default instance
